package com.owen.service.impl;

import com.owen.pojo.Resp;
import com.owen.service.UploadFile;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;

@Service
public class UploadFileImpl implements UploadFile {

    @Override
    public Resp<String> upload(MultipartFile file) {
        // 判断文件是否为空
        if(file.isEmpty()){
            // 客户端传入空文件，一般犯错一方在客户端，则错误编码以4开头
            return Resp.fail("400","文件为空");
        }
        // 获取原始文件名（带有该文件的扩展名）
        String originalFilename = file.getOriginalFilename();
        // 服务器中生成的文件名
        String fileName = System.currentTimeMillis() + "." + originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
        // 文件存放地址
        String filePath = "C:\\Users\\Administrator\\Desktop\\服务器存放位置";
        // 目标文件
        File dest = new File(filePath + "\\" + fileName);
        // 判断文件存放地址是否存在
        if(!dest.getParentFile().exists()){
            // 如果文件不存在，则创建该文件夹
            dest.getParentFile().mkdirs();
        }

        // 执行上传文件不一定会成功，有可能硬盘空间占满等因素失败
        try{
            file.transferTo(dest);
        }catch (Exception e){
            e.printStackTrace();
            return Resp.fail("500","文件上传失败");
        }
        return Resp.success(fileName);
    }

}